package com.unism.listener;

import java.net.URL;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.unism.util.Config;
import com.unism.util.Constant;

public class GlConfigListener  implements ServletContextListener {

	/**
	 * 关闭应用服务器上下文时，执行此方法
	 */
	public void contextDestroyed(ServletContextEvent event) {
		//System.out.println("应用服务器关闭时！");
	}

	/**
	 * 应用服务器上下文初始化时，执行此方法
	 */
	public void contextInitialized(ServletContextEvent event) {
		ServletContext con = event.getServletContext();
		this.initConfig(con);
	}
	
	/**
	 * 解析系统配置
	 * @return
	 */
	private boolean initConfig(ServletContext con){
		try {
			String a=Constant.SYSCONFIGFILES;
			String configName = con.getInitParameter(a);
			if(configName == null || configName.trim().equals("")){
				throw new Exception("在web.xml文件中，未配置配置文件名称!") ;
			}
 			String confs[] = configName.split(",");
 			String conf = null ;
 			for(int i = 0 ; i < confs.length ; i++){
 				conf = confs[i].trim() ;
 				if(conf != null && !conf.equals("")){
 					URL configFileURL = null;
 					configFileURL = GlConfigListener.class.getResource("/config/" + conf);
 					if(configFileURL == null){
 						configFileURL = GlConfigListener.class.getResource("/" + conf);
 					}
 					Config.getInstance().init(configFileURL) ;
 				}
 			}
			return true;
		} catch (Exception e) {
			System.out.println("系统启动时，初始化配置出错 !");
			System.out.println(e.getMessage());
			e.printStackTrace();
			return false;
		}
	}
}